<?php

declare(strict_types=1);

namespace App\Service;
/**
 * 文件服务
 * Class FileinfoService
 * @package App\Service
 */
class FileinfoService extends BaseService
{

    /**
     * 获取文件
     * @param array $ids
     * @param bool $first
     * @return array | int
     */
    public function getFileinfo($ids,$first=false): array
    {
        $ids = is_array($ids) ? $ids : [(int)$ids];
        // 获取缓存模型
        $instances = $this->getModelInstance()->find($ids);
        $instances_return = empty($instances) ? [] : $instances->toArray();
        // 缓存不完整，查询并更新
        if (count($instances_return) !== count($ids)) {
            foreach ($ids as $v) {
                if (!in_array($v, array_column($instances_return, 'id'))) {
                    $instances_new = $this->getModelInstance()->find($ids);
                    if (!empty($instances_new) && !empty($instances_new->toArray())) {
                        $instances_return[] = $instances_new->toArray();
                    }
                }
            }
        }
        if($first==true){
            if($instances_return){
                $instances_return = $instances_return['0'];
            }
        }
        return $instances_return;
    }

}